/**
 * https://github.com/christkv/node-mongodb-native
 * native c++ bson parser anschalten .... so wegen optiemierung und so :)
 * aber generel müssen wir uns des noch bisal durchschauen, ich will das die db vollgas giebt
 * weil wir haben unter umstäänden extrem viele files
 * 
 * notice an mich selber .... vieleicht doch mehr mongoDb server connections aufmachen damit da auch 
 * bei ner langen abfrage die sache async bleibt
 */

var Db = require('mongodb').Db;
var Connection = require('mongodb').Connection;
var Serv = require('mongodb').Server;
var BSON = require('mongodb').BSON;
var ObjectID = require('mongodb').ObjectID;

module.exports = function(){
	var Host;
	var Port;
	var Server;
	var User;
	var Pass;
	var DbName;
	var db;
	
	
	var getProvider = function(name){
		return require('./dbProvider/'+name)(db);
	};

	var connect = function(fn){
		Server = new Serv(Host, Port, {auto_reconnect: true});
		db = new Db('colamix', Server, {} );
		db.open(function(err){
			if(err) fn(err);
			else {
				//db.authenticate(User, Pass, function(){} );
				fn(null,{getProvider: getProvider,});
			}
		});	
	};
	
	var setOptions = function(o){
		//merge options
		if(o.host)Host = o.host;
		if(o.port)Port = o.port;
		if(o.user)User = o.user;
		if(o.pass)Pass = o.pass;
		if(o.db)DbName = o.db;
		//https://github.com/shimondoodkin/nodejs-clone-extend
		//fals wir sowas noch mal dynamisch brauchen
	};

	return {
		connect : connect,
		setOptions : setOptions
	};
};
